package cn.com.huzo.model.entities.trade;

import huzofw.model.entities.BaseEntity;
import huzofw.model.entities.IAggregateRoot;
import java.io.Serializable;
import java.util.List;
import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.ToStringBuilder;

/**
 * 生产指示书明细记录实体类
 *
 * @author 吴旭
 */
public class ProductionInstructionLinesEntity extends BaseEntity implements Serializable, IAggregateRoot {

    private static final long serialVersionUID = 3388156229005917956L;
    private String LinesId;                   // 明细标识
    private Long HeaderId;                    // 所属主记录标识
    private Long ColourId;                    // 成品色
    private String ColourNumber;              // 色号
    private String ColourName;
    private String SuitSizeName;              // 复合尺码（套装尺码，也可以是单件尺码 例如：B70-M）
    private Integer SampleQuantity;           // 样品数
    private String ShippingMarkNo;            // 唛头号
    private String Descripton;                // 备注
    private List<ProductionInstructionLinesSuitSizeEntity> SuiteSizeMemo;           // 尺码明细
    private List<ProductionInstructionLinesDestinationSchemaEntity> SchemaMemo;     // 生产分配明细
    private List<ProductionInstructionLinesDestinationEntity> DestinationMemo;      // 发货目的地明细
    private Integer RowSubTotal;                 // 每行小计
    private Integer RowSubTotalByDestination;    // 每行小计按照发货地
    private Object SchemaMemoJson;               // 交付日期及对应的生产数量
    private Short RowFlag;                       // 行标记，用于区分小计行、总计以及普通行
    private String ContractNo;                   // 合同号
    private String SuitStyleNo;                  // 款号（套装)

    public String getLinesId() {
        return LinesId;
    }

    public void setLinesId(String LinesId) {
        this.LinesId = LinesId;
    }

    public Long getHeaderId() {
        return HeaderId;
    }

    public void setHeaderId(Long HeaderId) {
        this.HeaderId = HeaderId;
    }

    public Long getColourId() {
        return ColourId;
    }

    public void setColourId(Long ColourId) {
        this.ColourId = ColourId;
    }

    public String getColourNumber() {
        return ColourNumber;
    }

    public void setColourNumber(String ColourNumber) {
        this.ColourNumber = ColourNumber;
    }

    public String getColourName() {
        return ColourName;
    }

    public void setColourName(String ColourName) {
        this.ColourName = ColourName;
    }

    public String getSuitSizeName() {
        return SuitSizeName;
    }

    public void setSuitSizeName(String SuitSizeName) {
        this.SuitSizeName = SuitSizeName;
    }

    public Integer getSampleQuantity() {
        return SampleQuantity;
    }

    public void setSampleQuantity(Integer SampleQuantity) {
        this.SampleQuantity = SampleQuantity;
    }

    public String getShippingMarkNo() {
        return ShippingMarkNo;
    }

    public void setShippingMarkNo(String ShippingMarkNo) {
        this.ShippingMarkNo = ShippingMarkNo;
    }

    public String getDescripton() {
        return Descripton;
    }

    public void setDescripton(String Descripton) {
        this.Descripton = Descripton;
    }

    public List<ProductionInstructionLinesSuitSizeEntity> getSuiteSizeMemo() {
        return SuiteSizeMemo;
    }

    public void setSuiteSizeMemo(List<ProductionInstructionLinesSuitSizeEntity> SuiteSizeMemo) {
        this.SuiteSizeMemo = SuiteSizeMemo;
    }

    public List<ProductionInstructionLinesDestinationSchemaEntity> getSchemaMemo() {
        return SchemaMemo;
    }

    public void setSchemaMemo(List<ProductionInstructionLinesDestinationSchemaEntity> SchemaMemo) {
        this.SchemaMemo = SchemaMemo;
    }

    public List<ProductionInstructionLinesDestinationEntity> getDestinationMemo() {
        return DestinationMemo;
    }

    public void setDestinationMemo(List<ProductionInstructionLinesDestinationEntity> DestinationMemo) {
        this.DestinationMemo = DestinationMemo;
    }

    public Integer getRowSubTotal() {
        return RowSubTotal;
    }

    public void setRowSubTotal(Integer RowSubTotal) {
        this.RowSubTotal = RowSubTotal;
    }

    public Integer getRowSubTotalByDestination() {
        return RowSubTotalByDestination;
    }

    public void setRowSubTotalByDestination(Integer RowSubTotalByDestination) {
        this.RowSubTotalByDestination = RowSubTotalByDestination;
    }

    public Object getSchemaMemoJson() {
        return SchemaMemoJson;
    }

    public void setSchemaMemoJson(Object SchemaMemoJson) {
        this.SchemaMemoJson = SchemaMemoJson;
    }

    public Short getRowFlag() {
        return RowFlag;
    }

    public void setRowFlag(Short RowFlag) {
        this.RowFlag = RowFlag;
    }

    public String getContractNo() {
        return ContractNo;
    }

    public void setContractNo(String ContractNo) {
        this.ContractNo = ContractNo;
    }

    public String getSuitStyleNo() {
        return SuitStyleNo;
    }

    public void setSuitStyleNo(String SuitStyleNo) {
        this.SuitStyleNo = SuitStyleNo;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public boolean equals(Object o) {
        if (this == o) {
            return true;
        }
        if (!(o instanceof ProductionInstructionLinesEntity)) {
            return false;
        }

        final ProductionInstructionLinesEntity that = (ProductionInstructionLinesEntity) o;

        return new EqualsBuilder()
                .append(this.getLinesId(), that.getLinesId())
                .isEquals();
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public int hashCode() {
        int result = 17;
        result = 31 * result + this.getLinesId().hashCode();

        return result;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public String toString() {
        return ToStringBuilder.reflectionToString(this);
    }
}
